package com.px.dal;

import java.util.List;

import org.apache.ibatis.session.SqlSession;

import com.px.idal.IProjectInfoMapper;
import com.px.model.ProjectInfo;
import com.px.mybatisunit.MyBatisUtil;

/**
 *项目信息表
 */
public class ProjectInfoMapper {

	// 创建SqlSession对象的实例
	SqlSession session = MyBatisUtil.getsqlSession(true);
	// IProjectInfoMapper接口通过sqlsession的getmap方法,完成实现,全部自动化
	IProjectInfoMapper mapper = session.getMapper(IProjectInfoMapper.class);

	/**
	 * 查询方法
	 * 查询所有项目
	 * */
	public List<ProjectInfo> getAllProjects() {
		return mapper.getAllProjects();
	}

	/**
	 * 查询方法
	 * 根据project_info_id查询所有项目
	 * */
	public List<ProjectInfo> getProjectByProjectInfoId(ProjectInfo project) {
		return mapper.getProjectByProjectInfoId(project);
	}

	/**
	 * 查询方法
	 * 根据公司员工id查找项目信息
	 * 使用@Select 注解指明getProjectByProjectInfoId方法要执行的SQL
	 * */
	public List<ProjectInfo> getProjectByCompanyUserId(ProjectInfo project) {
		return mapper.getProjectByCompanyUserId(project);
	}

	/**
	 * Insert方法
	 * 增加用户
	 * 传参为对象方法
	 * */
	public int insertProject(ProjectInfo project) {
		return mapper.insertProject(project);
	}

	/**
	 * 更新方法
	 * 更新指定project_info_id的项目信息
	 * */
	public int updateProjectByProjectInfoId(ProjectInfo project) {
		return mapper.updateProjectByProjectInfoId(project);
	}

	/**
	 * 更新方法
	 * 更新指定project_info_id的项目分数
	 * */
	public int updateProjectScoreByProjectInfoId(ProjectInfo project) {
		return mapper.updateProjectScoreByProjectInfoId(project);
	}

	/**
	 * 删除方法
	 * 删除指定project_info_id的项目
	 * */
	public int deleteProjectByProjectInfoId(ProjectInfo project) {
		return mapper.deleteProjectByProjectInfoId(project);
	}

	/**
	 * 查询项目信息总条数
	 * 
	 * */
	public int getAllProjectCounts() {
		return mapper.getAllProjectCounts();
	}

	/**
	 * 查询指定名称项目是否存在
	 * 
	 * */
	public int checkProjectNameIsExist(ProjectInfo project) {
		return mapper.checkProjectNameIsExist(project);
	}

	/**
	 * 查询指定project_info_id项目是否存在
	 * 
	 * */
	public int checkProjectInfoIdIsExist(ProjectInfo project) {
		return mapper.checkProjectInfoIdIsExist(project);
	}

	/**
	 * 查询方法
	 * 查询按average递减前sum_awards条数据
	 * */
	public List<ProjectInfo> getFirstProjects(int review_group, int sum_awards) {
		return mapper.getFirstProjects(review_group, sum_awards);
	}

	/**
	 * 查询方法
	 * 查询指定奖项id的项目信息
	 * */
	public List<ProjectInfo> getProjectsByAwardId(int awards_id) {
		return mapper.getProjectsByAwardId(awards_id);
	}

	/**
	 * 查询方法
	 * 根据评审组id查询所有项目信息
	 * */
	public List<ProjectInfo> getProjectsByReviewGroupId(int review_id) {
		return mapper.getProjectsByReviewGroupId(review_id);
	}
}
